home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / hardware / eemram.arc / EEMRAM.DOC < prev    next >
Text File  |  1987-08-15  |  16KB  |  359 lines

  1.                                   EEMRAM 1.00
  2.  
  3.  
  4.         Purpose
  5.         -------
  6.         EEMRAM is a small utility that can expand your DOS memory from
  7.         640K to a maximum of 736K using Enhanced Expanded Memory (EEM).
  8.         To use EEMRAM, you must have a memory board that provides EEM,
  9.         such as the AST RAMpage. A companion program (DERAM) can be used
  10.         to restore the "normal" 640K if necessary.
  11.  
  12.  
  13.         Use
  14.         ---
  15.         Here is EEMRAM's syntax:
  16.  
  17.             eemram [/#] [/S]
  18.  
  19.         When run, EEMRAM will increase DOS-usable memory DOS from 640K
  20.         to a maximum of 736K.  The exact amount depends on your hardware
  21.         configuration, particularly on what type of display adapter you
  22.         have installed.  You may want to run EEMRAM via your AUTOEXEC
  23.         startup batch, ideally as the first external program run by the
  24.         batch:
  25.  
  26.             echo off
  27.             cd c:\util
  28.             eemram
  29.             ...
  30.  
  31.         The optional /S parameter instructs EEMRAM to (S)ave certain
  32.         information in memory where it can be accessed by the DERAM
  33.         program (see below).  DERAM will not work unless EEMRAM was run
  34.         with the /S option.
  35.  
  36.         The optional /# parameter limits EEMRAM's use of EEMS memory to
  37.         some amount less than the maximum possible.  See "Limiting
  38.         Memory Size".
  39.  
  40.         We've included a small program that displays the total amount
  41.         of memory available to the system and the amount that's currently
  42.         free for DOS's use.  To see the effects of EEMRAM, just run MS
  43.         (Memory Size) before and after running EEMRAM.
  44.  
  45.  
  46.         DERAM
  47.         -----
  48.         As explained below ("Memory Allocation"), EEMRAM works by
  49.         mapping EEMS memory to DOS addresses beginning at memory segment
  50.         A000.  There is a potential conflict here: the Enhanced Graphics
  51.         Adapter (EGA) may also use memory beginning at A000.  It is also
  52.         possible that you may have other hardware using this area of
  53.         memory.  The result of such conflicts is unpredictable, but the
  54.         most likely is that extraneous data will appear in graphics
  55.         displays.
  56.  
  57.         You may also find that you have only a few programs that can
  58.         really use the extra EEMRAM memory and that you prefer to leave
  59.         the EEMS memory free most of the time.
  60.  
  61.         The DERAM program helps with these situations by reversing the
  62.         effects of EEMRAM: it restores the original 640K of DOS memory
  63.         and releases the EEMRAM-allocated EEMS memory back to the free
  64.         memory pool.
  65.  
  66.         To use DERAM, you must have run EEMRAM with the /S option:
  67.  
  68.             C> eemram /s
  69.  
  70.         This saves certain information the DERAM needs.  To restore the
  71.         original 640K and eliminate the memory conflict, just run DERAM:
  72.  
  73.             C> deram
  74.  
  75.         As an example of using EEMRAM and DERAM, suppose that you only
  76.         want to have the extra memory available for one program, your
  77.         word processor BESTWP.  The following command sequence will do
  78.         the trick:
  79.  
  80.             C> eemram /s
  81.             C> bestwp
  82.             C> deram
  83.  
  84.         You can enter these commands manually or make a small batch file
  85.         or PCED synonym.
  86.  
  87.         The opposite situation holds where you want to run with extra
  88.         memory most of the time, but release it before running the EGA
  89.         graphics program GREATGFX.  The following commands will work,
  90.         assuming that you originally installed EEMRAM with /S:
  91.  
  92.             C> deram
  93.             C> greatgfx
  94.             C> eemram /s
  95.  
  96.         NOTE: when you use /S, EEMRAM places in memory a small amount
  97.         (four bytes) of information that DERAM needs.  The information
  98.         is stored in the little used Interapplications Communication
  99.         Area (ICA).  If EEMRAM cannot find four consecutive unused bytes
  100.         in this area, it cannot store the information and DERAM won't
  101.         work.
  102.  
  103.  
  104.         Limiting Memory Size: /# parameter
  105.         ----------------------------------
  106.         The optional EEMRAM /# parameter can be used to explicitly
  107.         reduce the number of 16K pages of EEMS memory it assigns to DOS
  108.         (see "Memory Allocation Information" for more information about
  109.         memory use).  "#" is a decimal digit from 1 to 6 that specifies
  110.         how many pages you want assigned.
  111.  
  112.         EEMRAM will normally assign all contiguous pages available
  113.         from A000 to B400 (6 pages maximum, or 96K).  However, there may
  114.         be cases in which you don't want all of this used, and that's
  115.         what /# does.  An example of /# use:
  116.  
  117.             C> eemram /2
  118.  
  119.         The /2 means "use only two 16K pages of EEMS memory."
  120.  
  121.         If you specify more pages than are available, EEMRAM will only
  122.         use the number available, in effect ignoring your parameter.
  123.  
  124.         Here is a map showing the effects of all possible /#:
  125.  
  126.             Page       /1  /2  /3  /4  /5  /6
  127.             ----       --  --  --  --  --  --
  128.             A000       XX  XX  XX  XX  XX  XX
  129.             A400           XX  XX  XX  XX  XX
  130.             A800               XX  XX  XX  XX
  131.             AC00                   XX  XX  XX
  132.             B000                       XX  XX <---MDA memory begins
  133.             B400                           XX
  134.             B800                              <---CGA memory begins
  135.                        --  --  --  --  --  --
  136.             KB added   16  32  48  64  80  96
  137.             Total KB  656 672 688 704 720 736
  138.  
  139.  
  140.  
  141.         Memory Allocation Information
  142.         -----------------------------
  143.         When a typical EEMS memory board is installed, it "backfills"
  144.         DOS memory to 640K; that is, some of the memory on the EEMS
  145.         board is permanently assigned to DOS in such a way that the
  146.         system will appear to DOS to have 640K of main memory.  This
  147.         640K occupies RAM addresses 00000 to 9FFFFF, or, in the more
  148.         traditional segment notation, memory segments 0000 to 9FFF.
  149.  
  150.         Segments beginning at A000 (the next segment above 9FFF) are not
  151.         assigned to DOS by the EEMS manager.
  152.  
  153.         However, 64K to 96K of addresses beginning at A000 are often
  154.         unused on PC's.  On a machine equipped with a monochrome display
  155.         adapter (MDA), display memory begins at segment B000, leaving
  156.         64K open from A000-AFFF; on a machine equipped with a color
  157.         graphics adapter (CGA), display memory begins at segment B800,
  158.         leaving 96K open from A000-B7FF.
  159.  
  160.         It is possible to force the EEMS manager to assign memory for
  161.         these addresses and to convince DOS that the EEMS memory so
  162.         assigned is usable by the system, resulting in as much as 736K
  163.         of DOS-usable memory.  That is what EEMRAM does.
  164.  
  165.         [Contrary to popular opinion, DOS is not limited to 640K;
  166.         it can use whatever memory is available, up to a limit of 1
  167.         megabyte.  The limiting factor is your hardware.  DOS can only
  168.         uses memory up to the lowest memory address used by any
  169.         component of your PC's hardware: adapter cards, ROM modules,
  170.         etc.  Also, the DIP switches on many machines are limited to a
  171.         maximum of 640K switch-settable; to go beyond this, it's
  172.         necessary for software such as EEMRAM to override the switch
  173.         settings.]
  174.  
  175.  
  176.         EEMS "exclusion" switches
  177.         -------------------------
  178.         When EEMRAM is run, it asks the EEMS manager which pages (16K
  179.         blocks) of memory are available for mapping.  EEMRAM will only
  180.         use contiguous pages beginning at A000 and ending at B800, a
  181.         maximum of 6 pages (96K): A000, A400, A800, AC00, B000, and
  182.         B400.  If an MDA is installed, the EEMS manager will inform
  183.         EEMRAM that pages B000 and B400 are not available, reulting in 4
  184.         usable pages (64K).
  185.  
  186.         Many EEMS managers have an optional install-time switch that
  187.         explcitly tells them NOT to allow mapping memory to specific
  188.         pages.  For example, AST's REMM.SYS has an X parameter that
  189.         eXcludes pages:
  190.  
  191.             device=remm.sys /X=A800-AFFF
  192.  
  193.         In this example, REMM would not map memory to pages A800 and
  194.         AC00, so EEMRAM would be able to use only A000 and A400 (32K
  195.         total).  If you find that EEMRAM is using less EEMS memory than
  196.         you'd expect (or if you see the message "No pages available at
  197.         A000"), you might look to this as a possible cause.
  198.  
  199.  
  200.         EEMRAM error messages
  201.         ---------------------
  202.         Expected 640K of DOS memory
  203.  
  204.             EEMRAM expects to find 640K of DOS RAM in the system; this
  205.             is the normal case if you have an EEMS board installed.
  206.             You'll see this message if you try to run EEMRAM in
  207.             "session" mode (format 1) twice in one session.
  208.  
  209.         Unable to resize memory
  210.  
  211.             EEMRAM can't modify DOS's memory allocation blocks, so
  212.             nothing has been done.  Always run EEMRAM directly at the
  213.             DOS prompt or via AUTOEXEC; don't run it as a "child" of
  214.             some other program.
  215.  
  216.         Installed EMS memory is not enhanced
  217.  
  218.             In this world there are two kinds of expanded memory
  219.             specificatons: EMS and Enhanced EMS (EEMS).  Standard EMS
  220.             hardware cannot do what EEMRAM has to do to map the expanded
  221.             memory, so it cannot be used.  If you see this message, you
  222.             do not have EEMS memory and you can't use EEMRAM.
  223.  
  224.         Error accessing EEMS manager
  225.  
  226.             Generic message indicating that there's a problem with the
  227.             EEMS manager software: it's corrupted, you don't have
  228.             expanded memory, etc.
  229.  
  230.         No pages available at A000
  231.  
  232.             A000 (hex) is the address where memory above 640K would
  233.             start.  The EEMS manager has told EEMRAM that there is no
  234.             "page frame" available at A000, so EEMRAM can't assign any
  235.             EEMS memory there.  The most likely cause is that other
  236.             hardware (EGA?) is already using this area of memory.
  237.             Another possibility is that you have set an exclusion switch
  238.             for page A000 when loading your EEMS manager.
  239.  
  240.         Warning: unable to save /S information for DERAM
  241.  
  242.             There is insufficient memory unused in the area that
  243.             EEMRAM/DERAM use to pass needed information back and forth.
  244.             This is a warning message: EEMRAM itself has run successfully,
  245.             but DERAM won't work.
  246.  
  247.         Valid pages are 1-6
  248.  
  249.             The only legal values for the /# parameter are 1 through 6.
  250.  
  251.         No EMS memory available
  252.  
  253.             All of your expanded memory is already in use.
  254.  
  255.  
  256.         DERAM error messages
  257.         --------------------
  258.  
  259.         System already set to 640K
  260.  
  261.             DERAM has found that the system already shows 640K of DOS
  262.             memory, so it hasn't done anything.
  263.  
  264.         EEMRAM not run with /S option, unable to resize memory
  265.  
  266.             In order to use DERAM, you must run EEMRAM with the /S
  267.             switch.  If you did run EEMRAM with /S and you see this
  268.             message, some other program is using the same area of memory
  269.             that EEMRAM/DERAM use to pass information back and forth.
  270.             You will not be able to use DERAM in this case (fortunately,
  271.             it's unlikely).
  272.  
  273.         Error accessing EEMS manager
  274.  
  275.             Generic message indicating that there's a problem with the
  276.             EEMS manager software: it's corrupted, you don't have
  277.             expanded memory, etc.
  278.  
  279.         Unable to resize memory
  280.  
  281.             DERAM can't modify DOS's memory allocation blocks, so
  282.             nothing has been done.  Always run DERAM directly at the
  283.             DOS prompt or via AUTOEXEC; don't run it as a "child" of
  284.             some other program.
  285.  
  286.  
  287.         Notes
  288.         -----
  289.         1. We can't promise that EEMRAM will work with any specific
  290.         hardware configuration.  If your hardware conflicts with what
  291.         EEMRAM does (EEMRAM won't run properly, system locks up, etc.),
  292.         there's nothing we can do about it.
  293.  
  294.         2. EEMRAM is not a TSR (i.e., it is not resident).  It runs and
  295.         terminates, restoring the full amount of memory to the system.
  296.         Because EEMRAM is not a TSR, don't try to use MARK/RELEASE,
  297.         REFEREE, POPDROP, or similar TSR managers to "remove" EEMRAM.
  298.         EEMRAM cannot be removed by these managers.
  299.  
  300.         3. EEMRAM and DERAM both return an errorlevel of 255 if they
  301.         encounter any errors.
  302.  
  303.         4. If EEMRAM needs more EEMS memory than is available, it will
  304.         use all that is available.  If no EEMS memory at all is
  305.         available, it is an error.
  306.  
  307.         5. Remember that EEMRAM requires ENHANCED expanded memory.  This
  308.         is EMS memory that conforms to the Ashton-Tate/Quadram/AST
  309.         Enhanced Expanded Memory Specification (AQA EEMS).  EEMRAM will
  310.         not work with "standard" (Lotus-Intel-Microsoft or LIM) expanded
  311.         memory such as that provided by the Intel AboveBoard.
  312.  
  313.  
  314.  
  315.         Copyright/License/Warranty
  316.         --------------------------
  317.         This document and the program files EEMRAM.COM and DERAM.COM
  318.         ("the software") are copyrighted by the author.  The copyright
  319.         owner hereby licenses you to: use the software; make as many
  320.         copies of the program and documentation as you wish; give such
  321.         copies to anyone; and distribute the software and documentation
  322.         via electronic means.  There is no charge for any of the above.
  323.  
  324.         However, you are specifically prohibited from charging, or
  325.         requesting donations, for any such copies, however made; and
  326.         from distributing the software and/or documentation with
  327.         commercial products without prior permission.  An exception is
  328.         granted to not-for-profit user's groups, which are authorized to
  329.         charge a small fee (not to exceed $7) for materials, handling,
  330.         postage, and general overhead.  NO FOR-PROFIT ORGANIZATION IS
  331.         AUTHORIZED TO CHARGE ANY AMOUNT FOR DISTRIBUTION OF COPIES OF
  332.         THE SOFTWARE OR DOCUMENTATION, OR TO INCLUDE COPIES OF THE
  333.         SOFTWARE OR DOCUMENTATION WITH SALES OF THEIR OWN PRODUCTS.
  334.  
  335.         THIS INCLUDES A SPECIFIC PROHIBITION AGAINST FOR-PROFIT
  336.         ORGANIZATIONS DISTRIBUTING THE SOFTWARE, EITHER ALONE OR WITH
  337.         OTHER SOFTWARE, AND CHARGING A "HANDLING" OR "MATERIALS" FEE OR
  338.         ANY OTHER SUCH FEE FOR THE DISTRIBUTION.  NO FOR-PROFIT
  339.         ORGANIZATION IS AUTHORIZED TO INCLUDE THE SOFTWARE ON ANY MEDIA
  340.         FOR WHICH MONEY IS CHARGED.  PERIOD.
  341.  
  342.         No copy of the software may be distributed or given away without
  343.         this document; and this notice must not be removed.
  344.  
  345.         There is no warranty of any kind, and the copyright owner is not
  346.         liable for damages of any kind.  By using this free software,
  347.         you agree to this.
  348.  
  349.         The software and documentation are:
  350.  
  351.                              Copyright (C) 1987 by
  352.                              Christopher J. Dunford
  353.                             The Cove Software Group
  354.                               Post Office Box 1072
  355.                             Columbia, Maryland 21044
  356.                                  (301) 992-9371
  357.  
  358.         Comments to Chris Dunford [CIS 76703,2002].
  359.